<template><div><h2 id="io" tabindex="-1"><a class="header-anchor" href="#io"><span>IO</span></a></h2>
<h2 id="并发编程" tabindex="-1"><a class="header-anchor" href="#并发编程"><span>并发编程</span></a></h2>
<h2 id="异常" tabindex="-1"><a class="header-anchor" href="#异常"><span>异常</span></a></h2>
<p>JAVA的异常体系分为 Error 和 Exception</p>
<p>其中Error是编译错误或者是系统错误，一般不需要人为关心，编译错误一般IDE会对开发者进行提示，系统错误则一般需要进行架构分析</p>
<p>Exception是抛出的基本类型，我们主要关心的也是这个类</p>
<p>Exception分为RuntimeException和其他Exception</p>
<p>其他Exception是受检查异常（Checked Exception）即开发者在代码运行期间显示抛出的异常，必须在代码中写明处理的逻辑</p>
<p>RuntimeException是非检查异常（Unchecked Exception）即jdk中封装的异常，会在运行时抛出</p>
<p>当执行期间遇到Runtime异常，则执行线程中断，被JVM捕获，并被日志线程打印。</p>
<p><strong>简单的说</strong></p>
<p><strong>非RuntimeException必须要自己写catch块处理掉。如果不处理，程序将出现编译错误</strong>。</p>
<p><strong>RuntimeException不用try catch捕捉将会导致程序运行中断，若用则不会中断。</strong></p>
<p><img src="@source/常用开发知识总结/后端/java异常衍生图.png" alt="java异常衍生图"></p>
<blockquote>
<p>java异常衍生图</p>
</blockquote>
<h2 id="番外" tabindex="-1"><a class="header-anchor" href="#番外"><span>番外</span></a></h2>
<h3 id="sql" tabindex="-1"><a class="header-anchor" href="#sql"><span>SQL</span></a></h3>
<h4 id="连接" tabindex="-1"><a class="header-anchor" href="#连接"><span>连接</span></a></h4>
<ol>
<li><strong>连接的分类及定义:</strong> 如果A连接B则一定是A字段在前面,B表字段在后面,不同连接只是保证结果集的不同
<ol>
<li><strong>内连接</strong> 默认连接方式,结果集为A,B表同时存在的记录的连接</li>
<li><strong>外连接</strong>
<ol>
<li><strong>左外连接</strong>  结果集为A表所有记录并连接对应B表记录(不管是否存在B表记录)</li>
<li><strong>右外连接</strong>  结果集为B表所有记录并连接对应A表记录(不管是否存在A表记录)</li>
<li><strong>完全外连接</strong> 结果集为A,B表所有记录并连接对应表记录(A+B)</li>
</ol>
</li>
<li><strong>笛卡尔积</strong> 即AXB</li>
</ol>
</li>
<li><strong>语法</strong>
<ol>
<li>内连接 FROM a JOIN b ON a.b_id = b.id</li>
<li>左外连接 FROM a LEFT JOIN b ON a.b_id = b.id</li>
<li>右外连接 FROM a RIGHT JOIN b ON a.b_id = b.id</li>
<li>完全外连接 FROM a FULL JOIN b ON a.b_id = b.id</li>
<li>笛卡尔积 FROM a,b</li>
<li>多连接 FROM a JOIN b JOIN c ON a.b_id = b.id ON a/b.c_id = c.id</li>
</ol>
</li>
</ol>
</div></template>


